Motion-Based View Scrolling with Proportional and Dynamic Modes

ABSTRACT

The present invention provides a system and methods for motion-based scrolling of a relatively large contents view on an electronic device with a relatively small screen display. The user controls the scrolling by changing the device&#39;s tilt relative to a baseline tilt. The scrolling control can follow a Proportional Scroll mode, where the relative tilt directly controls the screen position over the contents view, or a Dynamic Scroll mode where the relative tilt controls the scrolling speed. The present invention obtains a criterion for automatically selecting the best scrolling mode when the dimensions of the contents view change. The baseline tilt is updated when the screen reaches an edge of the contents view to eliminate the creation of a non responsive range of tilt changes when the user changes tilt direction.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of provisional patent applicationSer. No. 61/858,603, filed 2013 Jul. 25 by the present inventor, whichis incorporated by reference herein in entirety.

STATEMENTS REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

Not applicable.

REFERENCE TO A MICROFICHE APPENDIX

Not applicable

BACKGROUND OF THE INVENTION

1. Field of the Invention

The disclosed embodiments relate generally to electronic devices with adisplay operable to scroll a virtual display of contents which may belarger than the actual size of the device's physical display.

2. Description of the Related Art

Hand held devices with a small physical display must often show avirtual stored or computed contents display that is larger than thescreen view of the physical display. Only a portion of the virtualdisplay can be shown at any given time within the screen view, thusrequiring an interactive process of view navigation that determineswhich particular portion of the virtual display is shown. This processmust allow the user to scroll the entire virtual display. Variousmethods have been used to control view navigation, including keyboards,joysticks, touch screen gestures, voice commands, rotational andmovement sensors, and visual gestures.

Today's most popular user interface in hand held devices is the touchscreen display. The touch screen display enables the user to performsingle-touch and multi-touch gestures (also called “touch commands”) tonavigate (or “scroll”) the display as well as to activate numerousfunctions and links. The versatility of these touch screen gesturescaused the gradual disappearance of traditional means of view navigationlike keyboards and joysticks.

As a result, most contemporary mobile devices employ the Flick and theDrag (panning) touch screen gestures to control the view navigationprocess. These gestures normally require cumbersome, two-hand operationas the user holds the device with one hand and performs the gesture withthe other. These touch gestures may cause unhealthy ergonomic strains onusers, particularly when the user attempts to perform a single handFlick gesture. Even if the user is somehow able to perform touchcommands with only one hand, the fingers that touch the screen are stillalways in the way, obstructing the screen view. Touch screen gesturesoften cause unintended activation of links that may be present on thescreen during scrolling, and result in fingerprints and dirt being lefton the screen. When the virtual display size is much larger than thescreen size, many repeated touch screen commands are necessary forscrolling the contents.

Various methods have been proposed as an alternative to touch screencommands for performing screen scrolling. A promising alternative is aview navigation system based on motion, which allows the users to scrollthe display using only one hand and without obscuring the screen view bythe fingers that are used for touch commands. In this disclosure, theterm ‘motion’ refer to device motion that can be translated into arotation (or tilt) change relative to a given baseline. This viewnavigation system of a mobile device may utilize a set of rotation andmovement sensors like the gyroscope, tilt sensor, camera tilt detector,magnetic sensor, Infra Red multiple camera rotation sensor, and anycombination of these sensors.

An early motion-based view navigation system is disclosed in my U.S.Pat. Nos. 6,466,198 and 6,933,923 which are incorporated by referenceherein in their entirety. These patents have been commercialized underthe trade name “RotoView” and their development has been chronicledonline at http://www.rotoview.com. The “RotoView” system is well adaptedto navigate the device's screen view across an arbitrarily largecontents view. Among other features, “RotoView” introduced the fixedmode and navigation (e.g. scrolling) mode so that the screen view doesnot continue to follow the tilt changes when the view navigation systemis brought back to the fixed mode at the end of the scrolling mode.Another “RotoView” feature is its ability to provide various fine andcoarse modes of scrolling. At the fine scrolling mode, relatively largetilt (or “orientation”) changes cause only a small amount of scrolling.Conversely, at the coarse scrolling mode, relatively small tilt changescause large amounts of scrolling.

A motion-based view navigation system works in a closed control loopbetween the user and the device, where the user iterates the rotationalmotion in response to the actual scrolling occurring on the screen. If amotion-based scrolling device is first rotated beyond the edge of thecontents view and then rotated back, the user experiences an undesiredrange of no response to the back rotation. If the rotation beyond theedge is significant, the undesired non-responsive range of rotation isquite large, during which the closed control loop between the user andthe device is temporarily broken, as the user perceive no responseswhile changing the tilt of the device.

It should be noted that the user gains the best viewing experience whenthe screen surface is held perpendicular to her eyes. An oftenencountered challenge in motion-based view scrolling system is theviewing quality experienced during the tilting of the device, when thedevice is held at an oblique angle to the line of sight.

Therefore, it would be desirable to provide methods and systems that canreduce or eliminate the above deficiencies and improve the user'sexperience during motion-based view scrolling. Such methods should alsoreduce the cognitive burden on the user and produce a more efficientuser interface that is intuitive and easy to use.

BRIEF SUMMARY OF THE INVENTION

The present invention provides a motion-based view scrolling system thatemploys two selectable scrolling modes when responding to the devicerotation. In the first mode, the system sets the screen view positionover the contents view directly from the amount of the rotation from theinitial tilt baseline locked when the scrolling process started. Thismapping between the relative tilt to the scrolling distance is typicallyproportional. We will refer in this application to this mode of viewnavigation as Proportional Scroll mode. The Proportional Scroll uses apreset rotation range that allows full scrolling of the contents viewfrom edge to edge. The second scrolling mode uses the relative rotationchanges to dynamically control the speed of scrolling, as taught by myRotoView patents cited above. We will refer in this application to thismode of view navigation as Dynamic Scroll mode.

When the magnification of the contents view is relatively small, theProportional Scroll provides a convenient view navigation experience.Accurate rotation sensors like the gyroscope or camera allow the deviceto use a small rotation range (e.g. an angle of 30° degrees) to scrollthe entire contents view. However, when the magnification becomes large,the Proportional Scroll mode forces the user to rotate the device acrossa wide angle range in order to cover the entire contents view. This mayrequire the user to look at the screen at a sharply oblique direction,which reduces the quality of image perception and the readability of thedisplayed information. While the rotation range can be lowered in orderto allow more scrolling for less rotation, the scrolling accuracy isreduced and becomes less stable when a small rotation cause the displayto scroll a large amount of the stored contents.

The user gains the best viewing experience when the screen surface isheld perpendicular to her eyes. Since Dynamic Scroll uses rotationchanges to determine the speed and direction of the scroll, the deviceis returned to its initial orientation at the end of the scroll. As theuser is likely to start the scrolling process when the device is heldperpendicular to the line of sight in order to maximize the viewingconvenience, the device is returned to an optimal viewing condition atthe end of the scroll. Hence Dynamic Scroll is very useful when thecontents view is highly magnified. Since Proportional Scroll mode andDynamic Scroll mode have weaknesses and advantages, it is important thatthe mode selection will be optimal, providing an intuitive and easy touse view navigation.

In accordance with some embodiments, a computer-implemented method isperformed on a portable computing device with a display and a motionsensor. The computer-implemented method navigates the contents screenbased on the movements of the device and automatically selects theProportional Scroll mode when the screen magnification is below acertain control value. When the screen magnification is above thecontrol value, the computer-implemented method selects the DynamicScroll mode.

In accordance with some embodiments, the selection of the best scrollingmode for the horizontal direction may be different than the bestscrolling mode selection for the vertical scrolling direction.

In accordance with some embodiments, the computer-implemented methodseeks to minimize the non-responsive range of rotation when thescrolling reaches the edge of the contents view.

Thus, portable computing devices with display and motion sensors areprovided with more efficient and convenient methods for scrolling thedisplay based on the device motion. Such method and interfaces mayenhance or replace conventional scrolling methods.

The details of various embodiments of the invention are set forth in theaccompanying drawings and descriptions below.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

For a better understanding of the aforementioned embodiments of theinvention as well as additional embodiments thereof, reference should bemade to the Detailed Description of the invention, in conjunction withthe following drawings. In the drawings, like reference numeralsdesignate corresponding elements, and closely related figures have thesame number but different alphabetic suffixes.

FIG. 1 is a block diagram illustrating an electronic device having ascreen and motion-based view navigation in accordance with someembodiments.

FIG. 2 illustrates the relation between the screen view of the deviceand the stored contents view for a motion-based view navigation.

FIG. 3A outlines screen view positions over the contents view during anexample of horizontal scrolling during the Proportional Scroll mode inaccordance with one embodiment of the invention.

FIG. 3B illustrates the roll baseline and the tilt rotation lines alongthe roll axis for the example of FIG. 3A.

FIG. 3C depicts a graph showing the screen view horizontal position inresponse to the tilt along the roll axis relating to the example of FIG.3A.

FIG. 4A outlines screen view positions over the contents view during anexample of a horizontal Dynamic Scroll mode in accordance with someembodiment of the present invention.

FIG. 4B illustrates the roll baseline and a certain horizontal tilt usedduring the horizontal scrolling of the example of FIG. 4A.

FIG. 4C shows an example of a response curve used to compute thehorizontal scrolling rate from the changing tilt along the roll axis ofthe electronic device during the horizontal scrolling demonstrated inFIG. 4A.

FIG. 5A outlines screen view positions over the contents view during anexample of a vertical scrolling comparing Proportional Scroll mode andDynamic Scroll mode in accordance with some embodiment of the presentinvention.

FIG. 5B illustrates the vertical tilt of the electronic device duringthe vertical scrolling example of FIG. 5A.

FIG. 6A shows a bad viewing condition resulting when the display is heldat an oblique angle to the line of sight.

FIG. 6B shows the optimal viewing condition when the display isperpendicular to the line of sight.

FIG. 7 illustrates the software flow diagram of a motion-based scrollingprogram with automatic selection of scroll type for the horizontal andvertical direction in accordance with some embodiments.

FIG. 8 illustrates the software flow diagram of a motion-based scrollingprogram with automatic selection of a common scroll type in accordancewith some embodiments.

FIG. 9 shows the process of baseline updates during a horizontalProportional Scroll mode in accordance with some embodiments.

FIG. 10 depicts a graph relating the screen view horizontal position tothe tilt along the roll axis corresponding to the baseline updateprocess of FIG. 9

FIG. 11 outlines the software flow diagram for the Proportional Scrollmode in accordance with some embodiments of the present invention.

FIG. 12 shows the software flow diagram for the baseline update processfor the Proportional Scroll program of FIG. 11.

FIG. 13 outlines the software flow diagram for the Dynamic Scroll modein accordance with some embodiments of the present invention.

FIG. 14 shows the software flow diagram for the baseline update processfor the Dynamic Scroll program of FIG. 13.

FIG. 15 illustrates a non-linear mapping that may be used forProportional Scroll mode in some embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Hand held electronic devices typically have small screens and often needto show information contents that are larger than the size of theirdisplays. They employ a contents view (also called “virtual display”)which is stored in the device memory, while a part of the virtualdisplay is shown in the screen view (also called “physical display”). Inmany systems, the contents view may be dynamically downloaded to thedevice (e.g. from the internet or externally connected devices) so thatat various times only a part of the contents view is actually stored inthe device. In other situations, the contents may be programmaticallyupdated or selectively loaded from local memory causing the contentsview to change. The operator of the electronic device must be able toscroll the screen view over the contents view. It is important that thescreen view navigation will be intuitive and easy to use.

FIG. 1 discloses an electronic device 40 in accordance to someembodiment of the present invention. The processor 10 provides theprocessing and control means required by the system, and it comprisesone or more Central Processing Units (CPU). The CPU(s) in smallelectronic devices are often referred to as the microprocessor ormicro-controller. The processor 10 uses the memory subsystem 15 forretaining the executable program, the data and the display information.A motion sensor system 20 interfaces with the processor 10 to provideballistic data relating to the movements and rotations (tilt changes) ofthe device made by the user. The ballistic data can be used by themicro-controller to scroll (or navigate) the screen view 42 over thecontents view.

A display controller module 25 controls the display panel module 30 inaccordance with a program executed by the processor 10 and furtherinterfaces with the memory subsystem 15 for accessing the contents view.The processor 10 determines which portion of the contents view is shownin the screen view 42. The display controller 25 may include localgraphic memory resources. The display panel module may be equipped withtouch interface to receive user's touch gestures. In such embodimentsthe display controller 25 provides the processor 10 with the touchscreen gestures performed by one or more fingers on the display panel.

The motion sensor 20 detects rotational movements (or tilt gestures)along at least two generally perpendicular axes to measure changes inthe horizontal and vertical tilt of the device relative to a baselinetilt captured at the start of the scrolling. The tilt changes are usedby the processor 10 to determine the amount and direction of thescrolling of the screen view 42 over the contents view.

There are many types of motion sensors, including gyroscopes, cameras,accelerometers, magnetic, mechanical, background radio directionsensors, and more. Camera rotation sensors are based on one or morecameras that are mounted on the device 40 and associated with visionanalysis to determine movements and rotations. Such camera sensor systemmay operate on the visible light range or on the infra red range of thespectrum. The motion sensor system may comprise an assembly of one ormore sensors of different types, with special “sensor fusion” algorithmdesigned to improve the accuracy. Often, the motion sensor 20 includesbuilt in computing elements to perform the ‘fusion’ algorithm. Forexample, a 6-degree-of-freedom sensor, which comprises a combination ofa 3-axis accelerometer and 3-axis gyroscope can be used to distinguishbetween rotational and movement data and provide more precise viewnavigation. It can also use accelerometer data to compensate for agyroscope drift. Complex sensors are useful but are not a must forimplementing the present invention. The embodiments described here canbe implemented with all rotation sensors.

To further reduce the overall system cost, the implementation can bemade using only a single low-cost tri-axis accelerometer (also known asa gravity sensor or a G-sensor). This sensor is available in most modernhand held devices. In such an implementation, the acceleration readingsalong the X,Y,Z axes are converted into rotational readings along twoperpendicular axes, e.g. the device's roll and pitch axes. It is wellknown in the art how to perform such a conversion, providing reasonableaccurate roll and pitch results when the device has no lateral movementsand the accelerometer resolves only the gravity of Earth. However, wehave found that intuitive lateral movements in such a configuration areconverted to virtual rotations. For example, lateral movement to theright may be translated to a roll axis rotation to the right. Theselateral movements are still very useful to navigate the screen viewbecause the scrolling process works in a closed control loop. This loopincludes the user that moves the device, the translation of devicelateral movements into virtual tilt changes, and the observed viewnavigation. Thus the user may combine lateral and rotation movements toscroll to the target area of the contents view.

The motion sensor 20 can be used to detect movement or rotation commandsto activate and deactivate motion-based scrolling operation, asdescribed in my “RotoView” patents cited above.

It should be apparent to a person familiar in the art that many variantsof the block elements comprising the block diagram of FIG. 1 can bemade, and that various components may be integrated together into one ormore VLSI chips. The processor 10 can optionally access additional userinterface resources such as a voice command interface and akeyboard/joystick interface. Another interface resource may be a visualgesture interface, which detects a remote predefined visual gesture(comprising predefined movements of the hand, the fingers or the entirebody) using a camera or other capture devices.

FIG. 2 shows the geometric relation between the screen view 42 of theelectronic device 40 and the contents view 50. The view navigationprocess determines which part of the contents view 50 is shown at thescreen view 42, thus resulting in the scrolling of the contents. Theuser's three-dimensional tilt and movements of the hand held device 40are generally projected into tilt changes relative to a baseline tiltalong two generally perpendicular main axes placed on the surface of thedisplay. These tilt changes control the actual horizontal and verticalscrolling. Any arbitrary scrolling of said contents view 50 can bedecomposed into a horizontal scrolling component and a verticalscrolling component. In many instances in this application we choose todescribe scrolling examples and processes along a single main axis forthe sake of clarity, with the understanding that the same discussion isalso relevant to the other main axis.

Borrowing from Avionics terminology, we say that axis 60 is set alongthe roll axis of the device 40 and axis 62 is set along the pitch axisof the device. Roll rotations cause changes in the main horizontaldirection (also referred to as the “X” direction), while pitch rotationscause changes in the main vertical direction (also referred to as the“Y” direction). In such arrangement the scrolling is determined directlyfrom the roll and pitch rotations, so that any tilt changes along theaxis perpendicular to the plane of the screen view (yaw axis) may beignored or used for optional user commands like zooming or controlfunctions.

Various other techniques to translate absolute tilt changes and/ormovements in real three dimensional space onto the two dimensions of thescreen view are possible, and they can be employed with the presentinvention. In some embodiments, the sensor may not be aligned with theplane of the screen 42 so the sensor pitch, roll and yaw are mapped intothe horizontal and vertical axes for scrolling.

Referring to FIG. 2, the device uses the first rotation axis 60 setalong the roll axis of the device to translate the device's tilt changesalong arrow 64 into rightwards horizontal scrolling of the screen view42 over the contents view 50. Similarly, the second rotation axis 62 setalong the pitch axis of the device to translate the device's tiltchanges along arrow 68 into downwards vertical scrolling. I call thistranslation of rotation direction to scrolling direction “Mirror Style”as it mimics the change of a mirror view when it is rotated along arrows64 and 68. Some users may prefer a reversed response, in which rotatingthe device along arrow 64 will cause leftwards horizontal scrolling, androtation along arrow 68 will cause upwards vertical scrolling. I callthat translation of scrolling direction “Window Style”. Device settingsallow the user to select his preferred style of scrolling direction.

The Motion-based view navigation systems may respond to lateralmovements. When using a complex 6-degree-of-freedom sensor that includesan accurate gyroscope, it is possible to use only the gyroscoperotational data for scrolling control and ignore the lateral movementdata. When using a low-cost solution with only a tri-axis accelerometeras described above, arrow 66 represents horizontal lateral movement thatmay be used to scroll the screen view to the right. Similarly, arrow 70represents vertical lateral movement that may be used to scroll thescreen view down.

When the entire contents view is shown in the screen view, we say thatthe contents view is not magnified (or that it is zoomed out). When thescreen view shows only a portion of the contents view during the viewnavigation process (scrolling), we say that the contents view ismagnified (or zoomed-in). The horizontal magnification is defined as theratio MagX=a/b of the width (a) 80 of the contents view divided by thewidth (b) 82 of the screen view. Similarly, the vertical magnificationis defined as the ratio MagY=c/d of the height (c) 84 of the contentsview divided by the height (d) 86 of the screen view. Because the screenview 42 and the contents view 50 are generally represented by boundingrectangles that are often not similar, the horizontal magnification andvertical magnification are usually different. In cases where thecontents view is dynamically downloaded to the device or changedprogrammatically during the scrolling operation, the magnification valuechanges in response to changes in the geometry of the changing contentsview.

The device's tilt changes along the horizontal direction (e.g. aroundthe roll axis 60) are measured relative to a horizontal baseline tilt ofthe device taken at the start of the scrolling. The device's tiltchanges along the vertical direction (e.g. around the pitch axis 62) aremeasured relative to a vertical baseline tilt of the device taken at thestart of the scrolling. Throughout this application we define tiltchanges or rotation changes performed by the user in order to scroll thedevice as relative tilts. The relative horizontal tilt is defined as thecurrent horizontal tilt of the device minus the horizontal baselinetilt. The relative vertical tilt is defined as the current vertical tiltof the device minus the vertical baseline tilt.

The scrolling controller can set the screen view position over thecontents view directly from the relative tilt. To achieve this, eachscreen position on the contents view is mapped to a certain relativetilt value. This mapping is often proportional so that the currentscreen position at the start of scrolling is naturally mapped to zerorelative tilt, and the screen position at the edges of the contents vieware mapped to max and min values within the relative tilt range. This iswhy we refer to this mode of view navigation as Proportional Scrollmode. The Proportional Scroll must use a preset rotation range thatallows full scrolling of the contents view from edge to edge. Forexample, the contents view 50 of FIG. 2 may be assigned a rotation rangeof 30° for the horizontal scrolling from the left edge 52 to the rightedge 54, and a rotation range 20° for the vertical scrolling from thetop edge 56 to the bottom edge 58.

FIGS. 3A-3C illustrate a horizontal Proportional Scroll example taken inresponse to the device rotation around the roll axis 60. VerticalProportional Scroll is similar to the horizontal scrolling so that thehorizontal example is fully applicable to the issues presented withvertical Proportional Scroll.

FIG. 3A illustrates three screen view positions over the contents view50 during the horizontal Proportional Scroll example. At the start ofthe scrolling process, the screen view is placed at an arbitrary screenposition 100. When the device is tilted counter-clockwise along the rollaxis 60 it reaches screen view position 102 at the left edge 52 of thecontents view 50. When the device is tilted clockwise along the rollaxis it reaches screen view position 104 at the right edge 54 of thecontents view. Note that this relation between tilt direction to thescrolling direction follows the “Mirror Style” and can be reversed ifthe “Window Style” is chosen.

FIG. 3B illustrates the horizontal rotations during the horizontalProportional Scroll of FIG. 3A as seen from the bottom edge view 44 ofthe device. The arbitrary tilt of the device 40 along the roll axis atthe start of the Proportional Scroll example is captured as thehorizontal baseline 120. The device is tilted to line 122 relative tothe horizontal baseline 120 to cause the screen view 42 to scroll toposition 102 at the left edge 52 of the contents view. Similarly, thedevice is rotated to line 124 to scroll the screen view to screenposition 104 at the right edge 54 of the contents view. The angle βformed between lines 124 and 120 indicates the relative horizontal tiltneeded to scroll from initial screen position 100 to the screen position104 at the right edge of the contents view. The angle α formed betweenlines 122 and 124 defines the horizontal rotation range during theProportional Scroll mode. In some embodiments the device allows the userto set the rotation range to a desired value. In other embodiments thehorizontal and vertical rotation ranges can be determined automaticallybased on optimal viewing criteria. Since the user gains the best viewingexperience when the screen surface is perpendicular to her eyes, it isdesirable to set it to the lowest value that still allows convenientcontrol by the user. When the horizontal and/or vertical magnificationsare large, setting a low value for the rotation range requires that verysmall rotations are translated to large scrolling distances. As aresult, scrolling under these conditions is less smooth and sometimesunpleasantly jumpy. Some embodiment may provide filtering for the sensordata to reduce the jumpy behavior of the rotation measurements. Oneneeds to be aware that strong filtering tends to cause a noticeabledelay in the scrolling response.

FIG. 3C depicts a graph showing the horizontal screen position relativeto the relative horizontal tilt for the Proportional Scroll example ofFIG. 3A. When the Proportional Scroll begins, the current horizontaltilt of the device is captured as the horizontal baseline. This initialhorizontal tilt has a relative horizontal equal to 0° at the graphorigin 140. The graph origin 140 also corresponds to the initial screenposition 100 in FIG. 3A. Following the “Mirror Style” setting of thisexample, the relative horizontal tilt increases when the device isrotated clockwise and it decreases when the device is rotated counterclockwise. Notice that the horizontal screen position is linearlyrelated to the relative horizontal tilt between graph points 142 and144. At graph point 142, the device is tilted to line 122 of FIG. 3B andthe screen view reaches screen position 102 at the left edge 52 of thecontents view 50. If the relative horizontal tilt is further decreased(by continuing to rotate the device counter clockwise) until graph point146, the screen view position remains at 102 as it is stopped at theleft edge 52 of the contents view. If the user wants to rotate clockwiseback from graph point 146, there is a non-responsive range of rotationuntil graph point 142 where no scrolling occurs. The screen view 42starts to scroll away from the left edge 52 only when the relativehorizontal tilt goes above β−α. This problem of having non-responsiverange of rotation is resolved by the embodiments described in FIG. 9-14.

At graph point 144, with a relative horizontal tilt equal to β, thedevice's horizontal tilt reaches line 124 of FIG. 3B, corresponding toscreen view position 104 at the right edge 54 of the contents view. Thescreen view position remains at 104 when the device is further rotatedclockwise beyond the line 144 to reach graph point 148. Similarly towhat was observed at the left edge, there is a non-responsive range ofrotation from graph points 148 to 144.

Another flexible approach to perform scrolling based on tilt changes isto convert the tilt changes into a corresponding rate (or speed) ofscrolling, as taught by my RotoView patents cited above. We will referin this application to this mode of motion-based view navigation asDynamic Scroll mode. FIGS. 4A-4C illustrate a horizontal Dynamic Scrollexample taken in response to the device rotation around the roll axis60. Vertical Dynamic Scroll is similar to the horizontal scrolling sothat the horizontal example is fully applicable to the issues presentedwith vertical Dynamic Scroll.

FIG. 4A illustrates three screen view positions over the contents view50 during the horizontal Dynamic Scroll example. At the start of thescrolling process, the screen view 42 is placed at an arbitrary screenposition 100. When the relative horizontal tilt is decreased by rotatingthe device in a counter clockwise direction, the screen view reachesposition 106 at the left edge 52 of the contents view 50. When thedevice is tilted clockwise the screen view reaches position 108 at theright edge 54 of the contents view. Note that this relation between tiltdirection to scrolling direction follows the “Mirror Style”, and can bereversed if “Window Style” is chosen.

The Dynamic Scroll mode of operation requires smaller relative tiltsthan the Proportional Scroll mode. FIG. 4B illustrates one instance ofthe roll rotations during the horizontal Dynamic Scroll of FIG. 4A asseen from the bottom edge view 44 of the electronic device. Thearbitrary tilt of the device 40 along the roll axis at the start of theDynamic Scroll example is captured as the roll baseline 120. At theinstance shown in FIG. 4B the electronic device is tilted to line 126 toform a relative horizontal tilt δ which is translated to a horizontalscrolling rate 162 by the response curve 160 shown in FIG. 4C.

A response curve can be a linear or a non-linear graph that relates thedevice relative tilt value to a scrolling rate of the screen view.Equivalently, a response graph may be represented by a table of speedvalues corresponding to relative tilts, a list of threshold values, orby a mathematical function that may include specific boundaryconditions. A simple response curve may consist of a single value or aconstant that is used to multiply the relative tilt to obtain thescrolling rate. This results in a simple linear graph that relates therelative tilt to the scrolling rate. Some applications may require aresponse curve with a fixed rate of scrolling, so the response curve isjust a single number equal to that rate of scrolling. Other embodimentsmay require a response curve where only a fixed rate scrolling is neededwhen the relative tilt exceeds a positive threshold value (or goes belowa negative threshold value). Such a response curve may be represented bya step function with one positive and one negative threshold values.

The respond curve may be selected automatically from a plurality ofstored response curves to fulfill the special needs of a particularapplication, or it can be selected by the user who wishes to customizethe scrolling speed. Some embodiments may dynamically change theresponse curve during the scrolling process. This allows the user tostart the scrolling with a coarse response curve, followed automaticallyby a fine response curve. In some embodiments the user can change theresponse curve on the fly during the scrolling to achieve instant fasteror slower response.

The example response curve of FIG. 4C is a non-linear graph, having arange of tilt from negative value 166 to positive value 164 with noscrolling speed to create a threshold for noise reduction. The scrollingspeed increases at an accelerated rate as the tilt increases, allowingthe user to quickly scroll when producing a strong tilt and to slow downfor a fine scrolling at lower tilts.

When the magnification of the screen is relatively small, theProportional Scroll mode provides a convenient view navigationexperience. Accurate rotation sensors like gyroscopes or cameras allowthe device to use a small rotation range (e.g. 30 degrees) to scroll theentire contents view. However, when the magnification becomes large,Proportional Scroll requires the user to rotate the device across a wideangle range in order to cover the entire contents view. This requiresthe user to look at the screen at a sharply oblique direction (dependingwhere the user scrolls), which reduces the quality of image perceptionand the readability of the information on the display. While therotation range can be lowered in order to allow more scrolling distancefor less rotation change, scrolling accuracy is reduced and may becomeunstable as small rotation measurement noise may cause instability inthe screen view position.

A comparison between a Proportional Scroll mode and Dynamic Scroll modeperformed along the same vertical path across the contents view andlasting the same time is illustrated in FIGS. 5A and 5B. FIG. 5A showsthe vertical path of the scrolling from initial screen position 100 nearthe bottom edge 58 of the contents view 50 to the final screen position110 near the top edge 56 of the contents view. FIG. 5B contains twographs showing the relative vertical tilt versus the scrolling time forboth scrolling modes. The graph 184 is for the Proportional Scroll andgraph 186 is for the Dynamic Scroll. During Proportional Scroll mode,the user must increase the relative vertical tilt in order to move thescreen view from bottom screen position 100 to top screen position 110.The curvy nature of graph 184 is merely indicating how the user may havechanged the relative vertical tilt along the path to the top edge. Atthe end of the path, the relative vertical tilt equals the full verticalrotation range. During the Dynamic Scroll mode, the user producesrelatively small tilt changes that control the speed of scrolling. As aresult, graph 186 remains bounded by a small relative vertical tilt,with a final tilt equal to 0 at the end of the path.

The user gains the best viewing experience when the screen surface isheld perpendicular to her eyes as shown in FIG. 6A. Assuming that theuser starts the vertical scroll example of FIG. 5A holding the device atthe optimal viewing position of FIG. 6A, graph 184 indicates that theProportional Scroll mode ends in the viewing position of FIG. 6B.Clearly, FIG. 6B shows that the device is held at a sharp oblique anglerelative to the user's line of sight 192, creating a difficult viewingcondition. Since Dynamic Scroll uses rotation changes to determine thespeed and direction of the scroll, the device is returned to the initialoptimal orientation of FIG. 6A at the end of the scroll. Hence DynamicScroll is very useful when the contents view is highly magnified, whileProportional Scroll mode is more useful for smaller magnifications.

FIG. 7 shows the software flow diagram for a motion-based view scrollingsystem that automatically selects the horizontal and vertical scrollingmodes based on the contents view's horizontal and verticalmagnifications. The program computes the horizontal magnification MagXand the vertical magnification MagY at step 250. At decision step 254 itchecks if the horizontal magnification MagX is larger than thepropScrlLimitX value, and if so it selects the Dynamic Scroll(DynamScrl) mode for the horizontal scrolling at step 258. If MagX issmaller or equal to propScrlLimitX, step 256 selects the ProportionalScroll (PropScrl) mode for the horizontal scrolling. At decision step260 the program checks if the vertical magnification MagY is larger thanthe propScrlLimitY value, and if so it selects the Dynamic Scroll modefor the vertical scrolling at step 262. If MagY is smaller or equal topropScrlLimitY, step 264 selects the Proportional Scroll mode for thevertical scrolling.

The propScrlLimitX and propScrlLimitY can be set in accordance with apreference setting of the user, or they can be selected automaticallyfor each type of media to be scrolled. For example, a magnified imageviewer may be set to higher limit values than a map scrolling, because amap scrolling continuously loads portions of the contents view while amagnified image is available instantly. In general, the selection ofsuch limit values are made as a tradeoff between the benefits andlimitations of each mode as described above, taking into account sensoraccuracy and user's tolerance to various rotation ranges used duringProportional Scroll mode. Using the horizontal scroll examples of FIG.3A and FIG. 4A, if the propScrlLimitX is set to 4.0, the scrollingassociated with FIG. 3A will be Proportional Scroll, as MagX=a/b isclearly below 4.

Once the horizontal and vertical scroll modes are selected, theelectronic device performs the horizontal and vertical scrolling at step270. The scrolling process is iteratively repeated along the loop ofstep 270 and decision steps 274 and 276. The dimensions of the contentsview are checked at step 274, as the contents view may be dynamicallyupdated. If the size is changed, the scroll mode selection process isrepeated via steps 250 to 264. The program ends when the scrollingprocess ends at decision step 276.

FIG. 8 shows the software flow diagram of another embodiment of amotion-based view scrolling system that automatically selects a commonscrolling mode for both the horizontal and vertical directions based onthe horizontal and vertical magnifications of the contents view. Theprogram computes the horizontal magnification MagX and the verticalmagnification MagY at step 250 and selects a common magnificationComMag=Max(MagX, MagY) at step 312. At decision step 320 the programchecks if the common magnification value ComMag is larger than a commonlimit value ComLimit, and if so it selects the Dynamic Scroll mode atstep 322. If ComMag is smaller than or equal to ComLimit, step 324selects the Proportional Scroll mode for both the horizontal andvertical scrolling. The scrolling process is iteratively repeated alongthe loop of step 270 and decision steps 274 and 276 as described in thediscussion above of FIG. 7.

The common limit value ComLimit can be set as a preference by the user,or can be selected automatically for each type of media to be scrolled.In some embodiments, the determination of contents size change 274 andscrolling end 276 can rely on interrupt notification rather than on thepolling mechanism illustrated in FIGS. 7 and 8.

The Proportional Scroll mode exhibits a non-responsive range of tiltchanges occurring beyond the rotation range α (e.g. between the graphpoints 146 to 142 and between the graph points 148 to 144 of FIG. 3C).This limitation can be resolved using the baseline update processillustrated in FIG. 9. The following description relates to thehorizontal scrolling example of FIGS. 3A-3C and it is similar forvertical scrolling.

FIG. 9 illustrates the baseline update process, where the horizontalbaseline 120 is captured at the start of the horizontal scrolling. Asthe device is tilted to line 122 the screen view reaches screen position102 at the left edge 52 of the contents view 50. This corresponds to thegraph point 142 in FIG. 3C, at the relative horizontal tilt β−α where ais the horizontal rotation range. β−α is defined as the left horizontaledge angle and must be captured during the baseline update process. β isdefined as the right horizontal edge angle (with similar top and bottomvertical edge angles defined for vertical scrolling). In order to avoidthe non-responsive range beyond this position, the baseline updateprocess iteratively updates the baseline 120. As a result, when thedevice is further tilted by an extra counter clockwise angle of γ toreach a current tilt along line 202, the horizontal baseline 120 isreplaced with a new horizontal baseline 200. The new baseline may berotated by the same γ angle to track the rotation beyond the scrollinglimit (due to the screen view reaching the left edge 52 of the contentsview). It is also possible to adjust this change with a relatively smallpadding angle ε, as is actually illustrated in FIG. 9 by the angle γ−εbetween the initial horizontal baseline 120 and the new horizontalbaseline 200. This sets the new baseline 200 at an angle of α−β+ε fromthe current tilt line 202.

Using the above baseline update scheme, rotating clockwise back fromline 202 has almost immediate scrolling effect to move the screen viewfrom the left edge, without the large non-responsive range between graphpoints 146 to 142 of FIG. 3C. In fact, scrolling responsiveness startsonce the back rotation exceeds the arbitrarily small padding angle ε.Some embodiments may set ε to 0 if so desired, but a small ε provides an“edge padding” range which improves the user experience when rotatingback from an edge.

FIG. 10 illustrates the baseline update process of FIG. 9 with amodified section of the Proportional Scroll graph of FIG. 3C. When therelative horizontal tilt is decreased (see arrow 210) from graph points142 to 146 to reach angle β−α−γ, the baseline is updated by atranslation 212 of the original graph to the left along the relativehorizontal tilt axis, moving the baseline 120 from the ‘horizontalscreen position’ axis of the graph to the updated baseline 200. If the“edge padding” angle ε is larger than 0, there is a small intentionalnon-responsive range 216, when the device is rotated back from graphpoint 146 to graph point 214 corresponding to angle β−α−γ+ε. Scrollingbecomes responsive to the user clockwise roll rotation 218 from graphpoint 214. If ε is set to 0, the scrolling is immediately responsivewhen the user rotates clockwise (back), thus eliminating the entirenon-responsive range between graph point 146 to 142 that occurredwithout a baseline update. The baseline update 212 can be doneiteratively at a preset update rate (e.g. at 3-8 updates per second) andmay use filtering or average calculation techniques as described below.

FIG. 11 illustrates the software flow diagram of one embodiment of thepresent invention that performs the Proportional Scroll with baselineupdates. The motion sensor 20 provides continuous measurements of thehorizontal tilt and vertical tilt of the device. The Proportional Scrollstarts at step 400 in response to a user scroll starting command andstep 410 sets the horizontal baseline with the current horizontal tiltand the vertical baseline with the current vertical tilt. The programthen repeatedly performs steps 420, 430, 440 and 450 to compute theProportional Scroll process until decision step 454 identifies a user'scommand to end the scrolling process at step 460.

Decision step 420 checks if the scrolling caused the screen view 42 toreach the horizontal edge of the contents view 50 (left edge 52 or rightedge 54 in FIG. 2). If a horizontal edge is detected, step 424 updatesthe roll baseline in accordance with the baseline update processoutlined in FIG. 12. If a horizontal edge is not detected, step 428clears the horizontal edge detection flag. This flag is used by thebaseline update process in FIG. 12 to insure a single recording of theleft and right horizontal edge angles (defined in FIG. 3C as β−α and βrespectively). Decision step 430 checks if the scrolling caused thescreen view to reach the vertical edge of the contents view (top edge 56or bottom edge 58 in FIG. 2). If a vertical edge is detected, step 434updates the pitch baseline in accordance with the baseline updatesubroutine (FIG. 12). If a vertical edge is not detected, step 438clears the vertical edge detection flag. This flag is used by thebaseline update process to insure a single recording of the top andbottom vertical edge angles. The edge angles can be determined directlyfrom the initial geometrical relation between the screen view and thecontents view. However, if the contents view is dynamically changing, itis required to recapture the edge angles whenever the screen viewreaches the edge. Recapture of edge angles is also required inembodiments with less accurate motion sensors that may exhibit anangular drift.

The user can set and modify the horizontal rotation range α used for thecalculation of the horizontal scroll, and the vertical rotation range φused for the vertical scroll calculation. It may be more convenient forthe user to set different values for α and φ. Often φ will be set to asmaller value than a due to the natural horizontal geometry of the twoeyes placement in the human face. The rotation ranges should be properlyadjusted for devices allowing contents viewing that automatically switchbetween portrait and landscape modes.

The tilt changes for scroll computation are determined in step 440. Therelative horizontal tilt (“rel_horizontal_tilt”) is set to the currenthorizontal tilt minus the horizontal baseline. The relative verticaltilt (“rel_vertical_tilt”) is set to the current vertical tilt minus thevertical baseline. Processing step 450 uses the relative horizontal tiltand the relative vertical tilt to determine the screen position usingthe response graph controlling the Proportional Scroll. The responsegraph (like those shown in FIG. 3C and FIG. 5B) sets a linear relationbetween the relative tilt and the screen position which depends on therotation range and the maximum scrolling distance. The responsecomputation computes the scrolling distance by simply multiplying therelative tilt by the maximum scrolling distance divided by the rotationrange. The values of the relative tilts must be converted to the sameangular units of rotation ranges α and φ. Using the view dimensions ofFIG. 2 and the rotation ranges α and φ, the horizontal scrollingdistance is

rel_horizontal_tilt*(a−b)/α

and the vertical scrolling distance is

rel_vertical_tilt*(c−d)/φ.

The process for updating the horizontal and vertical baselines duringthe Proportional Scroll is described in more detail in FIG. 12. It isstarted at step 480 when the screen view 42 reaches one or two edges ofthe contents view 50. If the screen view reaches a single edge then onlythe corresponding horizontal or vertical baseline is updated. When thescreen view reaches a corner of the contents view both horizontalbaseline and vertical baselines are updated simultaneously. Since theroll baseline and vertical baseline update processes are the same, FIG.12 uses general naming variables that can apply for horizontal andvertical instances (e.g. directionEdge instead of horizontalEdge orverticalEdge). Some embodiments of the present invention may usedifferent parameters to modify the filtering and average calculationsbetween the horizontal baseline update and the vertical baseline update.

Steps 490 and 495 insure that the horizontal or vertical edge angles arerecorded only once at the edge_angle when the screen view reaches anedge. Decision step 490 checks the directionEdge flag (which is thehorizontalEdge or verticalEdge flags from FIG. 11). If the directionEdgeflag is false then this is the first iteration of the baseline processwith the current edge. Step 495 sets the horizontal or verticaledge_angle variable with the current relative tilt. The directionEdgeflag is set true to insure that the edge_angle value is kept and thecurrent baseline is recorded in the last_baseline variable. Recall fromFIG. 11 that this flag is cleared only when the screen view is no longerat the edge that caused the first call for the baseline update process.

In processing step 500 a temporary baseline value (“temp_baseline”) istaken from a filtered value of the current horizontal or vertical tiltreduced by the edge_angle. If the “edge padding” range 216 of FIG. 10 isused, the corresponding “padding_angle” (angle ε in FIG. 9) is alsodeducted from the temp_baseline to insure that the new baseline will bekept at an additional padding distance of ε from the actual rotationbeyond the edge screen position.

Using the optional filtered value of the current tilt in step 500insures that the new baseline will reflect the smoothed value of thetilt measurement. The filter is preferably a low pass filter or arunning average, although other type of filters can be used (or even nofilter at all when stable sensors are available). The actual filteringcomputation can be performed within the main loop of the flow chart ofFIG. 11 even when edges are not detected. This insures that a stablefiltered value is readily available at step 500 during the baselineupdate. In such a case, the filter calculations are made immediatelyafter the capture of the roll and pitch orientations in step 410 of FIG.11.

When edge condition is detected in the flow chart of FIG. 11, thebaseline update process is called every time that the sensor producesnew data for scrolling control. It is desirable to update the baselinevalue only at an update interval (“upd_interval”) which is much largerthan the sensor update interval. Typically, the update interval can be150-800 mS, while the sensor update interval may be set at 40 mS orfaster. Step 510 computes the elapsed time from the last time thebaseline was updated. Decision step 515 determines if the updateinterval is exceeded, and if so, it assigns a new current baseline instep 520. The new current baseline can be a straight assignment of thetemporary baseline of step 500 or some average function of the temporarybaseline and the last baseline. The parameters of the average functionare selected to provide the smoothest user experience in performing thebaseline update process. The new current baseline is stored as the lastbaseline variable for the next iteration.

FIG. 13 illustrates the software flow diagram of one embodiment of thepresent invention that performs the Dynamic Scroll with baselineupdates. Baseline update improves the responsiveness of the DynamicScroll when the device is held with a relative tilt larger than zerowhile the screen view is already at or near the edge. As the screen viewcannot move further with this relative tilt, the baseline updategradually changes the baseline to the current tilt, bringing therelative tilt to zero. Any subsequent rotation of the device in theopposite direction is immediately responsive. The baseline update mayalso minimize some sensor drift effects.

Software steps 410, 440, and 454 of FIG. 13 are identical to thesoftware steps with the same numerals of the software flow diagram ofFIG. 11, and will be briefly described here. At the start 550 of theDynamic Scroll session, the horizontal and vertical baselines arecaptured in step 410. At decision step 560, the software determines ifthe screen view position is near the left or right edges of the contentsview. This can be determined by defining the “near distance” as a presetpercentage of the width of the contents view (e.g. 5-10%). If the screenview position is near the horizontal edge, step 564 performs the rollbaseline update process described below in FIG. 14. Similarly, thesoftware determines at decision step 570 if the screen view position isnear the top or bottom edges of the contents screen. If the screenposition is near a vertical edge, step 574 performs the pitch baselineupdate process of FIG. 14. Unlike the baseline update of FIG. 12 for theProportional Scroll where update can be made only when the device isrotated beyond the edges of the contents view, the baseline update forthe Dynamic Scroll occurs whenever the screen view is near the contentsview edges.

The relative horizontal tilt and the relative vertical tilt are computedin step 440. The software computes in step 580 the scrolling speed anddirection of the screen view based on the relative tilts. Step 580 mayimplement the methods described in my RotoView patents cited above. Theprogram then repeatedly performs steps 560, 570, 440 and 580 to processthe Dynamic Scroll until decision step 454 identifies a user's commandto end the scrolling process at step 590.

The update process for the horizontal and vertical baselines during theDynamic Scroll mode is described in more detail in FIG. 14. A temporarybaseline is derived from a filtered value of the current tilt of thedevice as shown in step 610. Alternatively, the current tilt may bedirectly copied into the temporary baseline. The baseline update rate isdone at a lower rate than the sensor update rate using step 510 anddecision step 515. Decision step 515 determines if the update intervalis exceeded, and if so, it assigns a new current baseline in step 630.The new current baseline can be a straight assignment of the temporarybaseline of step 610 or some average function of the temporary baselineand the last baseline. The parameters of the average function areselected to provide the smoothest user experience in performing thebaseline update process. The new current baseline is stored as the lastbaseline variable for the next iteration.

It is possible in some embodiments of the Proportional Scroll mode touse a non-linear relation for the mapping of the relative tilt to thescreen position, provided that all possible screen positions are mappedto a valid relative tilt within the horizontal and vertical rotationrange. For example, such a relation may have an approximate proportionalrange covering 50% of the contents view in the vicinity area currentlyshown on the screen view. The mapping of the contents view area furtheraway can be assigned increasing relative tilt values. Such non-linearrelation may be useful in applications that have low priority to reachthe edge of the contents view because the edge might be dynamicallyupdated (e.g. map scrolling).

FIG. 15 illustrates such a non-linear relation 650 for use inProportional Scroll mode performed horizontally and compares it to alinear relation 660 similar to the examples discussed above. The graphsof these relations depict the situation where the screen view positionis set at the horizontal middle of the contents view and the horizontalrotation range is set to α. When the relative horizontal tilt reachesα/2 the screen view reaches the right edge of the contents view and anyfurther increase of the relative horizontal tilt beyond graph point 670keeps the screen view at the edge position 675. When the relativehorizontal tilt reaches −α/2 the screen view reaches the left edge ofthe contents view and any further decrease of the relative horizontaltilt beyond graph point 680 keeps the screen view at the edge position685. The non-linear relation 650 is approximately linear betweenrelative horizontal tilts −η and η. From relative horizontal tilt η toα/2 the relation 650 converges faster to graph point 670, where thescreen view reaches the right end. Similarly at the opposing end, fromrelative horizontal tilt −η to −α/2 the relation 650 converges faster tograph point 680, where the screen view reaches the left edge of thecontents view. Using the linear relation 660, the screen view scrollsuniformly across the contents view as the user changes the relativehorizontal tilt. In contrast, the non-linear relation 650 scrolls morefinely between relative horizontal tilts −η and η. The scrolling becomesmore coarse as the screen view come closer to the edges of the contentsview.

The description above contains many specifications, and for purpose ofillustration, has been described with references to specificembodiments. However, the foregoing embodiments are not intended to beexhaustive or to limit the invention to the precise forms disclosed.Therefore, these illustrative discussions should not be construed aslimiting the scope of the invention but as merely providing embodimentsthat better explain the principle of the invention and its practicalapplications, so that a person skilled in the art can best utilize theinvention with various modifications as required for a particular use.It is therefore intended that the following appended claims beinterpreted as including all such modifications, alterations,permutations, and equivalents as fall within the true spirit and scopeof the present invention.

I claim:
 1. A system for motion-based view scrolling of a contents viewof an electronic device, comprising: a processor; a screen display; adisplay interface module controlling the operation of said screendisplay and coupled to said processor, said display interface moduleadapted to display at least a portion of said contents view; a motionsensor operatively coupled to said processor, said processor is adaptedto receive data from said motion sensor indicative of the device tiltchanges; a storage device coupled to said processor for storingexecutable code configured to perform operations comprising: (a)proportional scroll mode wherein the horizontal or vertical position ofthe screen display over said contents view is proportional to thehorizontal or vertical tilt of the device relative to a correspondinghorizontal or vertical baseline tilt; (b) dynamic scroll mode whereinthe scrolling speed of the screen display along the horizontal orvertical directions over said contents view is computed from thehorizontal or vertical tilt of the hand-held device relative to acorresponding horizontal or vertical baseline tilt; (c) computing ahorizontal magnification value as the ratio between the width of saidcontents view and the width of said screen display; (d) computing avertical magnification value as the ratio between the height of saidcontents view and the height of said screen display; (e) selecting aproportional scroll mode or a dynamic scroll mode based directly on saidhorizontal and said vertical magnification values.
 2. The system ofclaim 1, wherein the scrolling modes for the horizontal direction andthe vertical direction are independent, the horizontal scrolling mode isselected to be dynamic scroll when said horizontal magnification valueis above a preset horizontal magnification limit value, said horizontalscrolling mode is selected to be proportional scroll mode when saidhorizontal magnification value is below or equal to said presethorizontal magnification value, the vertical scrolling mode is selectedto be dynamic scroll mode when said vertical magnification value isabove a preset vertical magnification limit value, and said verticalscrolling mode is selected to be proportional scroll mode when saidvertical magnification value is below or equal to said preset horizontalmagnification value.
 3. The system of claim 1, further comprising acommon magnification equal to the larger of said horizontalmagnification and said vertical magnification, wherein a unifiedscrolling mode is selected for both the horizontal and the verticaldirections, said unified scrolling mode is selected to be dynamic scrollmode when said common magnification value is above a preset commonmagnification limit value, and wherein said unified scrolling mode isselected to be proportional scroll mode when said common magnificationvalue is below or equal to said common magnification limit value.
 4. Thesystem of claim 1, wherein operation (a) further comprising a selectionof a preset horizontal angular range corresponding to the tilt changesrequired to scroll said contents view from one side to the other, and aselection of a preset vertical angular range corresponding to the tiltchanges required to scroll said contents view from the top edge to thebottom edge.
 5. The system of claim 1, wherein operation (b) furthercomprising changing the relation between said scrolling speed and saidtilt in accordance with a response curve.
 6. The system of claim 5,wherein said response curve is selected from a plurality of responsecurves.
 7. The system of claim 1, wherein operation (b) furthercomprising changing the relation between said scrolling speed and saidtilt changes dynamically.
 8. The system of claim 7, wherein changing ofsaid relation between said scrolling speed and said tilt changes isbased on the time of scrolling.
 9. The system of claim 1, whereinoperation (e) is repeated when motion-based scrolling is started andwhen any dimension of the contents view is changed during the scrollingactivity.
 10. The system of claim 1, wherein said motion sensor is arotation sensor.
 11. The system of claim 1, wherein said rotation sensoris derived from an accelerometer by converting measurements of movementsand gravity made by said accelerometer into a measurement of the tilt ofsaid electronic device.
 12. A computer-implemented method for scrollingmode selection in an electronic device with a screen display and arotation sensor, said screen display scrolling a contents view inresponse to tilt changes of said device that are detected by saidrotation sensor, the method comprising the steps of: (a) performing aproportional scroll, when scrolling is activated and said proportionalscroll mode is selected, wherein the position of the screen displayalong the horizontal or vertical directions over said contents view isdirectly related to the horizontal or vertical tilt of the hand-helddevice relative to a corresponding horizontal or vertical baseline tilt;(b) performing a dynamic scroll, when scrolling is activated and saiddynamic scroll mode is selected, wherein the scrolling speed of thescreen display along the horizontal or vertical directions over saidcontents view is computed from the horizontal or vertical tilt of thehand-held device relative to a corresponding horizontal or verticalbaseline tilt; (c) computing a horizontal magnification value as theratio between the width of said contents view and the width of saidscreen display; (d) computing a vertical magnification value as theratio between the height of said contents view and the height of saidscreen display; (e) selecting a proportional scroll mode or a dynamicscroll mode based directly on said horizontal and said verticalmagnification values.
 13. The method of claim 12, wherein the scrollingmodes for the horizontal direction and the vertical direction areindependent, said horizontal scrolling mode is selected to be dynamicscroll when said horizontal magnification value is above a presethorizontal magnification limit value, said horizontal scrolling mode isselected to be proportional scroll when said horizontal magnificationvalue is below or equal to said preset horizontal magnification limitvalue, said vertical scrolling mode is selected to be dynamic scrollwhen said vertical magnification value is above a preset verticalmagnification limit value, and said vertical scrolling mode is selectedto be proportional scroll when said horizontal magnification value isbelow or equal to said preset horizontal magnification value.
 14. Themethod of claim 12, further comprising the step of selecting the largerof said horizontal magnification value and said vertical magnificationvalue as a common magnification value, wherein a unified scrolling modeis selected for both the horizontal and the vertical directions, saidunified scrolling mode is selected to be dynamic scroll when said commonmagnification value is above a preset common magnification limit value,and wherein said unified scrolling mode is selected to be proportionalscroll when said common magnification value is below or equal to saidcommon magnification limit value.
 15. The method of claim 12, whereinstep (a) further comprising a selection of a preset horizontal angularrange corresponding to the tilt changes required to scroll said contentsview from one side to the other, and a selection of a preset verticalangular range corresponding to the tilt changes required to scroll saidcontents view from the top edge to the bottom edge.
 16. The method ofclaim 12, wherein step (e) is repeated when the motion-based scrollingis started and when any dimension of the contents view is changed duringthe scrolling activity.
 17. A computer-implemented method fordetermining the baseline tilt along the horizontal or the verticalscrolling direction in an electronic device with a display, the methodcomprising the steps of: (a) selecting a reference baseline tilt alongsaid scrolling direction when a tilt-based screen scrolling is started;(b) performing a tilt-based scrolling of said display over a contentsview along said scrolling direction while scrolling is activated,wherein scrolling is determined by the relative tilt of said devicealong said scrolling direction, said relative tilt is the differencebetween the tilt of said device along said scrolling direction and saidreference baseline tilt; (c) adjusting said reference baseline tilt witha new baseline tilt along said scrolling direction when the screenreaches a predefined area of said contents view.
 18. The system of claim17, wherein said reference baseline tilt is derived from the currenttilt of said electronic device along said scrolling direction.
 19. Thesystem of claim 17, wherein step (c) is repeated at a predefinedbaseline update rate.
 20. The system of claim 17, wherein step (c)adjusts said reference baseline tilt by replacing it with said newbaseline tilt.
 21. The system of claim 17, wherein step (c) adjusts saidreference baseline tilt by a baseline tilt resulting from a weightedaverage of said new baseline tilt and said reference baseline tilt. 22.The system of claim 17, wherein step (b) performs a proportional scrollmode, wherein the position of said display over said contents view alongsaid scrolling direction is directly related to said relative tilt alongsaid scrolling direction, and wherein said predefine area in step (c) isan edge of said contents display, and wherein said relative tiltoccurring when said display crosses an edge of said contents view isrecorded as an edge angle.
 23. The system of claim 22, wherein step (c)sets said new baseline tilt to the current tilt of said electronicdevice along said scrolling direction adjusted with said edge angletowards said reference baseline.
 24. The system of claim 22, whereinsaid new baseline tilt is set to a filtered value of the current tilt ofsaid electronic device along said scrolling direction adjusted with saidedge angle in the direction towards said reference baseline.
 25. Thesystem of claim 22, wherein said edge angle is adjusted by a relativelysmall padding angle in the direction towards said reference baseline.26. The system of claim 17, wherein step (b) performs a dynamic scrollmode, wherein the speed of scrolling of said display over said contentsview along said scrolling direction is computed from said relative tiltalong said scrolling direction.
 27. The system of claim 26, wherein saidpredefine area in step (c) is a relatively narrow area adjacent to anedge of said contents view.
 28. The system of claim 26, wherein thechanging values of the tilt of said electronic device along saidscrolling direction are being averaged, and wherein step (c) sets saidnew baseline tilt to said averaged tilt.